Start class declaration

SYNOPSIS

pi_id | pi_start_class(pi_data *);

PARAMETER

pi_data.from: | start class name
pi_data.to: | end class name
pi_data.name: | class name
pi_data.flags: | {PI_CLASS | PI_STRUCT | PI_UNION}, PI_TEMPLATE, PI_FRIEND
pi_data.related: | pi_id of class nesting this class Default: previous class non-terminated class declaration
pi_data.classname: | full string of classname including scope e.g., X.Y.Z. Class (The delimiter is a full stop)
pi_data.nameSpace: | full scope of class e.g., X.Y.Z

DESCRIPTION
This function must be called whenever the parser detects a start class declaration in the source file. When pi_start_class is called, a new class declaration scope is opened. All subsequent calls to pi_function, pi_variable, pi_enum and pi_typdef indicate member declarations of this class. The function pi_end_class() closes the class declaration scope. Class declaration scopes can be nested.
C/C++ example
class foo { /*...*/ };
SNiFF+ Fuzzy Parser action

pi_data.from: | points to first character of the name " foo "
pi_data.to: | points to last character of the name " foo "
pi_data.name: | " foo "
pi_data.flags: | PI_CLASS

SNiFF+ usage
highlighted in Source Editor, listed in Symbol and Class Browsers, class hierarchy built in Hierarchy Browser

| Note
| The base classes of this class can be specified by calling pi_base() immediately after calling pi_start_class. See also pi_end_class , pi_base , pi_function , pi_variable , pi_enum , pi_typedef